package com.jrx.anytxn.accounting.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jrx.anytxn.i18n.annotation.ConvertField;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @ClassName VoucherInfoRes
 * @Description: 传票流水表的res请求实体
 * @Author yf
 * @Date 2019/9/9 0009
 * @Version V1.0
 **/
public class VoucherInfoRes implements Serializable {

    private static final long serialVersionUID = 1316704764717614643L;

    /**
     * 主键
     * 表字段:id
     */
    private Long id;

    /**
     * 租戶id
     * 表字段:tenant_id
     */
    private String tenantId;

    /**
     * 机构号
     * 表字段:organization_id
     */
    private String organizationId;

    /**
     * 业务日期
     * 表字段:business_date
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date businessDate;

    /**
     * 流水号
     * 表字段:flowno
     */
    private String flowno;

    /**
     * 传票套内顺序号
     * 表字段:seq
     */
    private Integer seq;

    /**
     * 科目号/内部户账号
     * 表字段:subject_id
     */
    private String subjectId;

    /**
     * 借贷标志（D=借方余额，C=贷方余额）
     * 表字段:sign
     */
    private String sign;

    /**
     * 金额
     * 表字段:amount
     */
    private BigDecimal amount;

    /**
     * 交易码
     * 表字段:txn_code
     */
    private String txnCode;

    /**
     * 币种（156=人民币）
     * 表字段:currency
     */
    private String currency;

    /**
     * 贷款订单ID
     * 表字段:loan_id
     */
    private String loanId;

    /**
     * 客户号
     * 表字段:customer_id
     */
    private String customerId;

    /**
     * 账户ID
     * 表字段:account_id
     */
    private String accountId;

    /**
     * 传票描述
     * 表字段:description
     */
    @ConvertField(fieldCode = "",fieldTable ="pr_ transaction_code_table",fieldType ="2")
    private String description;

    /**
     * 传票类型（G=更新科目总账，I=更新内部户明细账）
     * 表字段:voucher_type
     */
    private String voucherType;

    /**
     * 传票来源（C=核心账务组件，A=核算组件）
     * 表字段:src
     */
    private String src;

    /**
     * 产品ID
     * 表字段:product_id
     */
    private String productId;

    /**
     * 渠道
     * 表字段:channel
     */
    private String channel;

    /**
     * 五级分类（0=正常，1=关注，2=次级，3=可疑，4=损失）
     * 表字段:loan_classify
     */
    private String loanClassify;

    /**
     * 表内表外类别（1=表内业务，2=表外业务）
     * 表字段:category
     */
    private String category;

    /**
     * 创建时间
     * 表字段:create_time
     */
    private Date createTime;

    /**
     * 最后更新时间
     * 表字段:update_time
     */
    private Date updateTime;

    /**
     * 最后更新操作员
     * 表字段:update_by
     */
    private String updateBy;

    /**
     * 记录版本号
     * 表字段:record_version_number
     */
    private Integer recordVersionNumber;

    /**
     * 价税分离费种代码
     * 表字段:price_txa_code
     */
    private String priceTxaCode;

    /**
     * 销售额
     * 表字段:sales_amt
     */
    private BigDecimal salesAmt;

    /**
     * 子渠道id
     * 表字段:sub_channel
     */
    private String subChannel;

    /**
     * 并账机构id
     * 表字段:con_org_id
     */
    private String conOrgId;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getTenantId() {
        return tenantId;
    }

    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    public String getOrganizationId() {
        return organizationId;
    }

    public void setOrganizationId(String organizationId) {
        this.organizationId = organizationId;
    }



    public String getFlowno() {
        return flowno;
    }

    public void setFlowno(String flowno) {
        this.flowno = flowno;
    }

    public Integer getSeq() {
        return seq;
    }

    public void setSeq(Integer seq) {
        this.seq = seq;
    }

    public String getSign() {
        return sign;
    }

    public void setSign(String sign) {
        this.sign = sign;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public String getTxnCode() {
        return txnCode;
    }

    public void setTxnCode(String txnCode) {
        this.txnCode = txnCode;
    }

    public String getCurrency() {
        return currency;
    }

    public void setCurrency(String currency) {
        this.currency = currency;
    }

    public String getLoanId() {
        return loanId;
    }

    public void setLoanId(String loanId) {
        this.loanId = loanId;
    }

    public String getCustomerId() {
        return customerId;
    }

    public void setCustomerId(String customerId) {
        this.customerId = customerId;
    }

    public String getAccountId() {
        return accountId;
    }

    public void setAccountId(String accountId) {
        this.accountId = accountId;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }



    public String getSrc() {
        return src;
    }

    public void setSrc(String src) {
        this.src = src;
    }

    public String getProductId() {
        return productId;
    }

    public void setProductId(String productId) {
        this.productId = productId;
    }

    public String getChannel() {
        return channel;
    }

    public void setChannel(String channel) {
        this.channel = channel;
    }

    public String getLoanClassify() {
        return loanClassify;
    }

    public void setLoanClassify(String loanClassify) {
        this.loanClassify = loanClassify;
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    public Integer getRecordVersionNumber() {
        return recordVersionNumber;
    }

    public Date getBusinessDate() {
        return businessDate;
    }

    public void setBusinessDate(Date businessDate) {
        this.businessDate = businessDate;
    }

    public String getSubjectId() {
        return subjectId;
    }

    public void setSubjectId(String subjectId) {
        this.subjectId = subjectId;
    }

    public String getVoucherType() {
        return voucherType;
    }

    public void setVoucherType(String voucherType) {
        this.voucherType = voucherType;
    }

    public void setRecordVersionNumber(Integer recordVersionNumber) {
        this.recordVersionNumber = recordVersionNumber;
    }

    public String getPriceTxaCode() {
        return priceTxaCode;
    }

    public void setPriceTxaCode(String priceTxaCode) {
        this.priceTxaCode = priceTxaCode;
    }

    public BigDecimal getSalesAmt() {
        return salesAmt;
    }

    public void setSalesAmt(BigDecimal salesAmt) {
        this.salesAmt = salesAmt;
    }

    public String getSubChannel() {
        return subChannel;
    }

    public void setSubChannel(String subChannel) {
        this.subChannel = subChannel;
    }

    public String getConOrgId() {
        return conOrgId;
    }

    public void setConOrgId(String conOrgId) {
        this.conOrgId = conOrgId;
    }
}
